package com.hxkj.mapper;

import com.hxkj.domain.po.AuthFunction;
import com.hxkj.domain.po.FunctionLibrary;
import com.hxkj.domain.po.FunctionLibraryTree;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
* 数据库操作接口
*
* @author: chenwei
* @version: 1.0
* @datetime: 2018-06-27 12:35:00
*
*/
@Repository("functionLibraryMapper")
public interface FunctionLibraryMapper {

    /**
    *
    * 根据主键查询FunctionLibrary对象
    *
    * @param id
    * @return FunctionLibrary对象
    */
    FunctionLibrary selectByPrimaryKey(Long id);

    /**
    *
    * 根据查询条件查询符合条件的FunctionLibrary对象
    *
    * @param functionLibrary
    * @return 符合条件的FunctionLibrary对象List
    */
    List<FunctionLibrary> select(FunctionLibrary functionLibrary);

    /**
    *
    * 根据主键删除FunctionLibrary对象
    *
    * @param id
    * @return 影响条件数
    */
    int deleteByPrimaryKey(Long id);

    /**
    *
    * 根据条件删除符合条件的FunctionLibrary对象
    *
    * @param functionLibrary
    * @return 影响条件数
    */
    int delete(FunctionLibrary functionLibrary);

    /**
    *
    * 插入FunctionLibrary对象
    *
    * @param functionLibrary
    * @return 影响条件数
    */
    int insert(FunctionLibrary functionLibrary);

    /**
    *
    * 更新FunctionLibrary对象
    *
    * @param functionLibrary
    * @return 影响条件数
    */
    int update(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description getFunctionLibrarieList 获取功能列表
    * @Date 13:22 2018/6/27
    * @Param [functionLibrary]
    * @return java.util.List<com.hxkj.domain.po.FunctionLibrary>
    **/
    List<FunctionLibrary> getFunctionLibrarieList(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description saveFunctionLibrary 新增功能
    * @Date 13:33 2018/6/27
    * @Param [functionLibrary]
    * @return int
    **/
    int saveFunctionLibrary(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description modifyFunctionLibrary 修改功能
    * @Date 14:26 2018/6/27
    * @Param [functionLibrary]
    * @return int
    **/
    int modifyFunctionLibrary(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description removeFunctionLibrary 删除功能
    * @Date 14:40 2018/6/27
    * @Param [functionLibrary]
    * @return int
    **/
    int removeFunctionLibrary(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description getShowFunctionLibrarieList 获取状态启用的功能树
    * @Date 15:17 2018/6/27
    * @Param [functionLibrary]
    * @return java.util.List<com.hxkj.domain.po.FunctionLibrary>
    **/
    List<FunctionLibrary> getShowFunctionLibrarieList(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description getFunctionLibrary 根据ID获取功能
    * @Date 15:19 2018/6/27
    * @Param [functionLibrary]
    * @return com.hxkj.domain.po.FunctionLibrary
    **/
    FunctionLibrary getFunctionLibrary(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description saveFunction 为站点分配功能
    * @Date 17:00 2018/6/27
    * @Param [functionLibrary1]
    * @return int
    **/
    Long saveFunction(AuthFunction authFunction);

    /**
    * @author Mr.zheng
    * @Description getFunctionLibraryList 根据ID字符串获取功能列表
    * @Date 18:30 2018/6/27
    * @Param [functionLibrary]
    * @return java.util.List<com.hxkj.domain.po.FunctionLibrary>
    **/
    List<FunctionLibrary> getFunctionLibraryList(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description countFunctionLibrarieByParentId 根据父节点ID统计数据
    * @Date 11:03 2018/6/28
    * @Param [parentFunctionId]
    * @return int
    **/
    int countFunctionLibrarieByParentId(Long parentFunctionId);

    /**
    * @author Mr.zheng
    * @Description modifyFunctionLibraryStatus 修改子节点状态
    * @Date 11:33 2018/6/28
    * @Param [functionLibrary]
    * @return int
    **/
    int modifyFunctionLibraryStatus(FunctionLibrary functionLibrary);

    /**
    * @author Mr.zheng
    * @Description getFunctionLibraryById 根据ID获取功能
    * @Date 16:38 2018/7/5
    * @Param [id]
    * @return com.hxkj.domain.po.FunctionLibrary
    **/
    FunctionLibrary getFunctionLibraryById(Long id);

    
    /**
    * @author Mr.zheng
    * @Description getShowFunctionLibrarieIdList 获取站点可分配功能
    * @Date 9:54 2018/8/29
    * @Param [functionLibrary]
    * @return java.util.List<com.hxkj.domain.po.FunctionLibraryTree>
    **/
    List<FunctionLibrary> getShowFunctionLibrarieIdList(FunctionLibrary functionLibrary);
}
